• 首先导入包

    1
    2
    compile 'com.youth.banner:banner:1.4.2'
    compile 'com.github.bumptech.glide:glide:3.7.0'

    当然不用glide,用picasso,fresco都是可以的

  • 然后写一个加载类,如果是用Glide的话,就这么写

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    package com.aidebar.demo;

    import android.content.Context;
    import android.widget.ImageView;
    import com.bumptech.glide.Glide;
    import com.youth.banner.loader.ImageLoader;

    /**
    * @author xzj
    * @date 2016/11/21 11:27.
    */

    public class GlideImageLoader extends ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
    /**
    常用的图片加载库:
    Universal Image Loader:一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛。
    Picasso: Square出品,必属精品。和OkHttp搭配起来更配呦!
    Volley ImageLoader:Google官方出品,可惜不能加载本地图片~
    Fresco:Facebook出的,天生骄傲!不是一般的强大。
    Glide:Google推荐的图片加载库,专注于流畅的滚动。
    */

    //Glide 加载图片简单用法
    Glide.with(context).load(path).into(imageView);

    // //Picasso 加载图片简单用法
    // Picasso.with(context).load(path).into(imageView)
    //
    // //用fresco加载图片简单用法
    // Uri uri = Uri.parse((String) path);
    // imageView.setImageURI(uri);
    }
    // //提供createImageView 方法,如果不用可以不重写这个方法,方便fresco自定义ImageView
    // @Override
    // public ImageView createImageView(Context context) {
    // SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context);
    // return simpleDraweeView;
    // }
    }

  • 布局很简单,就是一个banner

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.aidebar.demo.MainActivity">

    <com.youth.banner.Banner
    android:id="@+id/banner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

    </RelativeLayout>
  • 使用:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    package com.aidebar.demo;

    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.widget.ImageView;
    import com.youth.banner.Banner;
    import com.youth.banner.BannerConfig;
    import java.util.ArrayList;
    import java.util.List;

    public class MainActivity extends AppCompatActivity {
    private List<Integer> images = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    images.add(R.mipmap.a);
    images.add(R.mipmap.b);
    images.add(R.mipmap.d);
    Banner banner = (Banner) findViewById(R.id.banner);
    banner.setImageLoader(new GlideImageLoader()); //设置加载器
    banner.setImages(images); //设置好资源
    banner.setIndicatorGravity(BannerConfig.CENTER);
    banner.isAutoPlay(true);
    banner.start();
    }
    }